//给定一个长度为 n 的整数 山脉 数组 arr ，其中的值递增到一个 峰值元素 然后递减。 
//
// 返回峰值元素的下标。 
//
// 你必须设计并实现时间复杂度为 O(log(n)) 的解决方案。 
//
// 
//
// 示例 1： 
//
// 
//输入：arr = [0,1,0]
//输出：1
// 
//
// 示例 2： 
//
// 
//输入：arr = [0,2,1,0]
//输出：1
// 
//
// 示例 3： 
//
// 
//输入：arr = [0,10,5,2]
//输出：1
// 
//
// 
//
// 提示： 
//
// 
// 3 <= arr.length <= 10⁵ 
// 0 <= arr[i] <= 10⁶ 
// 题目数据 保证 arr 是一个山脉数组 
// 
//
// Related Topics 数组 二分查找 👍 429 👎 0


package LeetCode.editor.cn;

/**
 * @author ldltd
 * @date 2025-03-01 22:44:37
 * @description 852.山脉数组的峰顶索引
 */
public class PeakIndexInAMountainArray{
	 public static void main(String[] args) {
	 	 //测试代码
	 	 PeakIndexInAMountainArray fun=new PeakIndexInAMountainArray();
	 	 Solution solution = fun.new Solution();

	 }
	 
//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public int peakIndexInMountainArray(int[] arr) {
		int l=0,r=arr.length-1;
		while (l<r){
			int m=(l+r)/2;
			if(arr[m]>arr[m-1]&&arr[m]>arr[m+1]){
				return m;
			}else if(arr[m]>arr[m-1]){
				l=m;
			}else {
				r=m;
			}
		}
		return l;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}
